namespace Traductor
{
    using TUVienna.CS_CUP.Runtime;
    using System;


    class Yylex : TUVienna.CS_CUP.Runtime.Scanner
    {
        private const int YY_BUFFER_SIZE = 512;
        private const int YY_F = -1;
        private const int YY_NO_STATE = -1;
        private const int YY_NOT_ACCEPT = 0;
        private const int YY_START = 1;
        private const int YY_END = 2;
        private const int YY_NO_ANCHOR = 4;
        private const int YY_BOL = 128;
        private const int YY_EOF = 129;
        private System.IO.TextReader yy_reader;
        private int yy_buffer_index;
        private int yy_buffer_read;
        private int yy_buffer_start;
        private int yy_buffer_end;
        private char[] yy_buffer;
        private bool yy_at_bol;
        private int yy_lexical_state;

        public Yylex(System.IO.TextReader yy_reader1)
            : this()
        {
            if (null == yy_reader1)
            {
                throw (new System.Exception("Error: Bad input stream initializer."));
            }
            yy_reader = yy_reader1;
        }

        private Yylex()
        {
            yy_buffer = new char[YY_BUFFER_SIZE];
            yy_buffer_read = 0;
            yy_buffer_index = 0;
            yy_buffer_start = 0;
            yy_buffer_end = 0;
            yy_at_bol = true;
            yy_lexical_state = YYINITIAL;
        }

        private bool yy_eof_done = false;
        private const int YYINITIAL = 0;
        private static readonly int[] yy_state_dtrans = new int[] {
		0
	};
        private void yybegin(int state)
        {
            yy_lexical_state = state;
        }
        private int yy_advance()
        {
            int next_read;
            int i;
            int j;

            if (yy_buffer_index < yy_buffer_read)
            {
                return yy_buffer[yy_buffer_index++];
            }

            if (0 != yy_buffer_start)
            {
                i = yy_buffer_start;
                j = 0;
                while (i < yy_buffer_read)
                {
                    yy_buffer[j] = yy_buffer[i];
                    ++i;
                    ++j;
                }
                yy_buffer_end = yy_buffer_end - yy_buffer_start;
                yy_buffer_start = 0;
                yy_buffer_read = j;
                yy_buffer_index = j;
                next_read = yy_reader.Read(yy_buffer,
                        yy_buffer_read,
                        yy_buffer.Length - yy_buffer_read);
                if (next_read <= 0)
                {
                    return YY_EOF;
                }
                yy_buffer_read = yy_buffer_read + next_read;
            }

            while (yy_buffer_index >= yy_buffer_read)
            {
                if (yy_buffer_index >= yy_buffer.Length)
                {
                    yy_buffer = yy_double(yy_buffer);
                }
                next_read = yy_reader.Read(yy_buffer,
                        yy_buffer_read,
                        yy_buffer.Length - yy_buffer_read);
                if (next_read <= 0)
                {
                    return YY_EOF;
                }
                yy_buffer_read = yy_buffer_read + next_read;
            }
            return yy_buffer[yy_buffer_index++];
        }
        private void yy_move_end()
        {
            if (yy_buffer_end > yy_buffer_start &&
                '\n' == yy_buffer[yy_buffer_end - 1])
                yy_buffer_end--;
            if (yy_buffer_end > yy_buffer_start &&
                '\r' == yy_buffer[yy_buffer_end - 1])
                yy_buffer_end--;
        }
        private bool yy_last_was_cr = false;
        private void yy_mark_start()
        {
            yy_buffer_start = yy_buffer_index;
        }
        private void yy_mark_end()
        {
            yy_buffer_end = yy_buffer_index;
        }
        private void yy_to_mark()
        {
            yy_buffer_index = yy_buffer_end;
            yy_at_bol = (yy_buffer_end > yy_buffer_start) &&
                        ('\r' == yy_buffer[yy_buffer_end - 1] ||
                         '\n' == yy_buffer[yy_buffer_end - 1] ||
                         2028/*LS*/ == yy_buffer[yy_buffer_end - 1] ||
                         2029/*PS*/ == yy_buffer[yy_buffer_end - 1]);
        }
        private string yytext()
        {
            return (new string(yy_buffer,
                yy_buffer_start,
                yy_buffer_end - yy_buffer_start));
        }
        private int yylength()
        {
            return yy_buffer_end - yy_buffer_start;
        }
        private char[] yy_double(char[] buf)
        {
            int i;
            char[] newbuf;
            newbuf = new char[2 * buf.Length];
            for (i = 0; i < buf.Length; ++i)
            {
                newbuf[i] = buf[i];
            }
            return newbuf;
        }
        private const int YY_E_INTERNAL = 0;
        private const int YY_E_MATCH = 1;
        private string[] yy_error_string = {
		"Error: Internal error.\n",
		"Error: Unmatched input.\n"
	};
        private void yy_error(int code, bool fatal)
        {
            System.Console.Write(yy_error_string[code]);
            System.Console.Out.Flush();
            if (fatal)
            {
                throw new System.Exception("Fatal Error.\n");
            }
        }
        private static int[][] unpackFromString(int size1, int size2, string st)
        {
            int colonIndex = -1;
            string lengthString;
            int sequenceLength = 0;
            int sequenceInteger = 0;

            int commaIndex;
            string workString;

            int[][] res = new int[size1][];
            for (int i = 0; i < size1; i++) res[i] = new int[size2];
            for (int i = 0; i < size1; i++)
            {
                for (int j = 0; j < size2; j++)
                {
                    if (sequenceLength != 0)
                    {
                        res[i][j] = sequenceInteger;
                        sequenceLength--;
                        continue;
                    }
                    commaIndex = st.IndexOf(',');
                    workString = (commaIndex == -1) ? st :
                        st.Substring(0, commaIndex);
                    st = st.Substring(commaIndex + 1);
                    colonIndex = workString.IndexOf(':');
                    if (colonIndex == -1)
                    {
                        res[i][j] = System.Int32.Parse(workString);
                        continue;
                    }
                    lengthString =
                        workString.Substring(colonIndex + 1);
                    sequenceLength = System.Int32.Parse(lengthString);
                    workString = workString.Substring(0, colonIndex);
                    sequenceInteger = System.Int32.Parse(workString);
                    res[i][j] = sequenceInteger;
                    sequenceLength--;
                }
            }
            return res;
        }
        private int[] yy_acpt = {
		/* 0 */ YY_NOT_ACCEPT,
		/* 1 */ YY_NO_ANCHOR,
		/* 2 */ YY_NO_ANCHOR,
		/* 3 */ YY_NO_ANCHOR,
		/* 4 */ YY_NO_ANCHOR,
		/* 5 */ YY_NO_ANCHOR,
		/* 6 */ YY_NO_ANCHOR,
		/* 7 */ YY_NO_ANCHOR,
		/* 8 */ YY_NO_ANCHOR,
		/* 9 */ YY_NO_ANCHOR,
		/* 10 */ YY_NO_ANCHOR,
		/* 11 */ YY_NO_ANCHOR,
		/* 12 */ YY_NO_ANCHOR,
		/* 13 */ YY_NO_ANCHOR,
		/* 14 */ YY_NO_ANCHOR,
		/* 15 */ YY_NO_ANCHOR,
		/* 16 */ YY_NO_ANCHOR,
		/* 17 */ YY_NO_ANCHOR,
		/* 18 */ YY_NO_ANCHOR,
		/* 19 */ YY_NO_ANCHOR,
		/* 20 */ YY_NO_ANCHOR,
		/* 21 */ YY_NO_ANCHOR,
		/* 22 */ YY_NO_ANCHOR,
		/* 23 */ YY_NO_ANCHOR,
		/* 24 */ YY_NO_ANCHOR,
		/* 25 */ YY_NO_ANCHOR,
		/* 26 */ YY_NO_ANCHOR,
		/* 27 */ YY_NO_ANCHOR,
		/* 28 */ YY_NO_ANCHOR,
		/* 29 */ YY_NO_ANCHOR,
		/* 30 */ YY_NO_ANCHOR,
		/* 31 */ YY_NO_ANCHOR,
		/* 32 */ YY_NO_ANCHOR,
		/* 33 */ YY_NO_ANCHOR,
		/* 34 */ YY_NO_ANCHOR,
		/* 35 */ YY_NO_ANCHOR,
		/* 36 */ YY_NO_ANCHOR,
		/* 37 */ YY_NO_ANCHOR,
		/* 38 */ YY_NO_ANCHOR,
		/* 39 */ YY_NO_ANCHOR,
		/* 40 */ YY_NO_ANCHOR,
		/* 41 */ YY_NO_ANCHOR,
		/* 42 */ YY_NO_ANCHOR,
		/* 43 */ YY_NO_ANCHOR,
		/* 44 */ YY_NO_ANCHOR,
		/* 45 */ YY_NO_ANCHOR,
		/* 46 */ YY_NO_ANCHOR,
		/* 47 */ YY_NO_ANCHOR,
		/* 48 */ YY_NO_ANCHOR,
		/* 49 */ YY_NO_ANCHOR,
		/* 50 */ YY_NO_ANCHOR,
		/* 51 */ YY_NO_ANCHOR,
		/* 52 */ YY_NO_ANCHOR,
		/* 53 */ YY_NO_ANCHOR,
		/* 54 */ YY_NO_ANCHOR,
		/* 55 */ YY_NO_ANCHOR,
		/* 56 */ YY_NO_ANCHOR,
		/* 57 */ YY_NO_ANCHOR,
		/* 58 */ YY_NO_ANCHOR,
		/* 59 */ YY_NO_ANCHOR,
		/* 60 */ YY_NOT_ACCEPT,
		/* 61 */ YY_NO_ANCHOR,
		/* 62 */ YY_NO_ANCHOR,
		/* 63 */ YY_NO_ANCHOR,
		/* 64 */ YY_NOT_ACCEPT,
		/* 65 */ YY_NO_ANCHOR,
		/* 66 */ YY_NO_ANCHOR,
		/* 67 */ YY_NOT_ACCEPT,
		/* 68 */ YY_NO_ANCHOR,
		/* 69 */ YY_NO_ANCHOR,
		/* 70 */ YY_NOT_ACCEPT,
		/* 71 */ YY_NO_ANCHOR,
		/* 72 */ YY_NO_ANCHOR,
		/* 73 */ YY_NOT_ACCEPT,
		/* 74 */ YY_NO_ANCHOR,
		/* 75 */ YY_NO_ANCHOR,
		/* 76 */ YY_NO_ANCHOR,
		/* 77 */ YY_NO_ANCHOR,
		/* 78 */ YY_NO_ANCHOR,
		/* 79 */ YY_NO_ANCHOR,
		/* 80 */ YY_NO_ANCHOR,
		/* 81 */ YY_NO_ANCHOR,
		/* 82 */ YY_NO_ANCHOR,
		/* 83 */ YY_NO_ANCHOR,
		/* 84 */ YY_NO_ANCHOR,
		/* 85 */ YY_NO_ANCHOR,
		/* 86 */ YY_NO_ANCHOR,
		/* 87 */ YY_NO_ANCHOR,
		/* 88 */ YY_NO_ANCHOR,
		/* 89 */ YY_NO_ANCHOR,
		/* 90 */ YY_NO_ANCHOR,
		/* 91 */ YY_NO_ANCHOR,
		/* 92 */ YY_NO_ANCHOR,
		/* 93 */ YY_NO_ANCHOR,
		/* 94 */ YY_NO_ANCHOR,
		/* 95 */ YY_NO_ANCHOR,
		/* 96 */ YY_NO_ANCHOR,
		/* 97 */ YY_NO_ANCHOR,
		/* 98 */ YY_NO_ANCHOR,
		/* 99 */ YY_NO_ANCHOR,
		/* 100 */ YY_NO_ANCHOR,
		/* 101 */ YY_NO_ANCHOR,
		/* 102 */ YY_NO_ANCHOR,
		/* 103 */ YY_NO_ANCHOR,
		/* 104 */ YY_NO_ANCHOR,
		/* 105 */ YY_NO_ANCHOR,
		/* 106 */ YY_NO_ANCHOR,
		/* 107 */ YY_NO_ANCHOR,
		/* 108 */ YY_NO_ANCHOR,
		/* 109 */ YY_NO_ANCHOR,
		/* 110 */ YY_NO_ANCHOR,
		/* 111 */ YY_NO_ANCHOR,
		/* 112 */ YY_NO_ANCHOR,
		/* 113 */ YY_NO_ANCHOR,
		/* 114 */ YY_NO_ANCHOR,
		/* 115 */ YY_NO_ANCHOR,
		/* 116 */ YY_NO_ANCHOR,
		/* 117 */ YY_NO_ANCHOR,
		/* 118 */ YY_NO_ANCHOR,
		/* 119 */ YY_NO_ANCHOR,
		/* 120 */ YY_NO_ANCHOR,
		/* 121 */ YY_NO_ANCHOR,
		/* 122 */ YY_NO_ANCHOR,
		/* 123 */ YY_NO_ANCHOR,
		/* 124 */ YY_NO_ANCHOR,
		/* 125 */ YY_NO_ANCHOR,
		/* 126 */ YY_NO_ANCHOR,
		/* 127 */ YY_NO_ANCHOR,
		/* 128 */ YY_NO_ANCHOR,
		/* 129 */ YY_NO_ANCHOR,
		/* 130 */ YY_NO_ANCHOR,
		/* 131 */ YY_NO_ANCHOR,
		/* 132 */ YY_NO_ANCHOR,
		/* 133 */ YY_NO_ANCHOR,
		/* 134 */ YY_NO_ANCHOR,
		/* 135 */ YY_NO_ANCHOR,
		/* 136 */ YY_NO_ANCHOR,
		/* 137 */ YY_NO_ANCHOR,
		/* 138 */ YY_NO_ANCHOR,
		/* 139 */ YY_NO_ANCHOR,
		/* 140 */ YY_NO_ANCHOR,
		/* 141 */ YY_NO_ANCHOR,
		/* 142 */ YY_NO_ANCHOR,
		/* 143 */ YY_NO_ANCHOR,
		/* 144 */ YY_NO_ANCHOR,
		/* 145 */ YY_NO_ANCHOR,
		/* 146 */ YY_NO_ANCHOR,
		/* 147 */ YY_NO_ANCHOR,
		/* 148 */ YY_NO_ANCHOR,
		/* 149 */ YY_NO_ANCHOR,
		/* 150 */ YY_NO_ANCHOR,
		/* 151 */ YY_NO_ANCHOR
	};
        private int[] yy_cmap = unpackFromString(1, 130,
    "44:8,45,50,46,44,51:2,44:18,50,40,42,44:2,41,39,49,11,12,33,29,31,32,35,34," +
    "47:10,21,24,28,6,30,44:2,20,22,18,25,15,10,9,19,1,48,23,16,48,2,27,36,48,8," +
    "7,3,26,37,17,48:3,4,43,5,44:3,20,22,18,25,15,10,9,19,1,48,23,16,48,2,27,36," +
    "48,8,7,3,26,37,17,48:3,13,38,14,44:2,0:2")[0];

        private int[] yy_rmap = unpackFromString(1, 152,
    "0,1,2,1:2,3,1:6,4,5,6,1,7,1:3,8,9,1:2,10,11,1,11,1:8,11:3,1,11:20,12,13,14," +
    "12,15,16,12,17,18,1,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,3" +
    "7,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,6" +
    "2,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,8" +
    "7,88,89,90,91,92,11,93,94,95,96,97,98,99")[0];

        private int[][] yy_nxt = unpackFromString(100, 52,
    "1,2,61,129,3,4,5,139,142,144,145,6,7,8,9,146,144,147,148,144:2,10,149,144,1" +
    "1,65,144:2,12,13,14,15,16,17,18,19,150,151,20,62,21,22,66,69:3,23,24,144,72" +
    ",23:2,-1:53,144,68,144,-1:3,144:3,25,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:" +
    "2,-1:9,144:2,-1:9,26,-1:51,28,-1:74,29,-1:28,30,-1:77,31,-1:57,32,-1:19,34," +
    "-1:92,24,-1:5,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9" +
    ",144:2,-1:4,60:41,35,64,60:2,-1,60:5,-1,144:3,-1:3,144:4,-1:4,71,144:5,-1,1" +
    "44:2,-1,144,74,144,-1:8,144:2,-1:9,144:2,-1:42,33,-1:13,60:41,63,64,60,70,7" +
    "3,60:3,70,60,-1,144:3,-1:3,144:4,-1:4,85,144:5,-1,144:2,-1,144:2,27,-1:8,14" +
    "4:2,-1:9,144:2,-1:52,39,-1:3,144:2,36,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144" +
    ":3,-1:8,144:2,-1:9,144:2,-1:4,60:41,35,64,60,70,73,60:3,70,60,-1,144:3,-1:3" +
    ",144:4,-1:4,144:2,37,144:3,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,67:" +
    "3,-1:3,67:4,-1:4,67:6,-1,67:2,-1,67:3,-1:8,67:2,-1:10,67,-1:46,60,-1,73:2,-" +
    "1:3,73,-1:2,144:3,-1:3,144:4,-1:4,144,88,144:4,-1,144:2,-1,144:3,-1:8,144:2" +
    ",-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144,89,144,-1:8,14" +
    "4:2,-1:9,144:2,-1:4,90,144:2,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,1" +
    "44:2,-1:9,144:2,-1:4,144:3,-1:3,144,91,144:2,-1:4,144:6,-1,144:2,-1,144:3,-" +
    "1:8,144:2,-1:9,144:2,-1:4,144:2,92,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3," +
    "-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144,38,144:2,-1:4,144:6,-1,144:2,-1,1" +
    "44:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,93,144:3,-1:4,144:6,-1,144:2,-1," +
    "144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:5,95,-1,144:2,-1" +
    ",144:3,-1:8,144:2,-1:9,144:2,-1:4,144,98,144,-1:3,144:4,-1:4,144:6,-1,144:2" +
    ",-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,99,144:5,-1,144:" +
    "2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2," +
    "-1,144:2,100,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:3,137,-1:4,144:6,-1," +
    "144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,101,144:2,-1:3,144:4,-1:4,144:6,-" +
    "1,144:2,-1,144:2,136,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6" +
    ",-1,135,144,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144,4" +
    "0,144:4,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4," +
    "41,144:5,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,42,144:3,-" +
    "1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,103,144:2,-1:3,144:4" +
    ",-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-" +
    "1:4,144:6,-1,144:2,-1,144,105,144,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144" +
    ":4,-1:4,43,144:5,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,14" +
    "4:4,-1:4,144,107,144:4,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-" +
    "1:3,108,144:3,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3" +
    ",-1:3,144,44,144:2,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4," +
    "144:3,-1:3,144:4,-1:4,45,144:5,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4" +
    ",144:2,109,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1" +
    ":4,144:3,-1:3,144:4,-1:4,144:5,110,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2," +
    "-1:4,144:3,-1:3,144:4,-1:4,144,46,144:4,-1,144:2,-1,144:3,-1:8,144:2,-1:9,1" +
    "44:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144,112,-1:9,1" +
    "44:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,47,144:2,-1:8,144:2,-1:9," +
    "144:2,-1:4,144,114,144,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-" +
    "1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:3,115,144:2,-1,144:2,-1,144:3,-1:8" +
    ",144:2,-1:9,144:2,-1:4,144:3,-1:3,144,116,144:2,-1:4,144:6,-1,144:2,-1,144:" +
    "3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,48,144:5,-1,144:2,-1,144" +
    ":3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,49,144:5,-1,144:2,-1,14" +
    "4:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,50,144:3,-1:4,144:6,-1,144:2,-1,1" +
    "44:3,-1:8,144:2,-1:9,144:2,-1:4,117,144:2,-1:3,144:4,-1:4,144:6,-1,144:2,-1" +
    ",144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144,51,-1," +
    "144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,14" +
    "4,118,144,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:5,119,-1,144" +
    ":2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,120,144:5,-1,1" +
    "44:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:2,52,144,-1:4,144:6" +
    ",-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:4,5" +
    "3,144,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144,54,144,-1:3,144:4,-1" +
    ":4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144,122,144,-1:3,144:" +
    "4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4," +
    "-1:4,144,123,144:4,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:2,124,-" +
    "1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:" +
    "3,144:4,-1:4,144:3,125,144:2,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,1" +
    "44:3,-1:3,144:4,-1:4,144:3,55,144:2,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2" +
    ",-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144,126,144,-1:8,144:2,-1:9,1" +
    "44:2,-1:4,144:2,56,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9," +
    "144:2,-1:4,144:3,-1:3,144:4,-1:4,57,144:5,-1,144:2,-1,144:3,-1:8,144:2,-1:9" +
    ",144:2,-1:4,144:2,127,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1" +
    ":9,144:2,-1:4,144:3,-1:3,144:4,-1:4,58,144:5,-1,144:2,-1,144:3,-1:8,144:2,-" +
    "1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,128,144:5,-1,144:2,-1,144:3,-1:8,144:2" +
    ",-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-1,144:2,-1,59,144:2,-1:8,144:" +
    "2,-1:9,144:2,-1:4,144:3,-1:3,144,75,144:2,-1:4,144:4,76,144,-1,144:2,-1,144" +
    ":3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144,141,144:4,-1,144:2," +
    "-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,132,144:2,-1:3,144:4,-1:4,144:6,-1,144:" +
    "2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:2,104,-1:3,144:4,-1:4,144:6,-1,14" +
    "4:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,97,144:3,-1:4,144:6,-1,1" +
    "44:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:5,96,-1," +
    "144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144,138,144" +
    ":4,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:2,113,-1:3,144:4,-1:4,1" +
    "44:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144" +
    ":5,111,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,121,144:2,-1:3,144:4,-1" +
    ":4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:2,77,-1:3,144:4,-" +
    "1:4,144:2,131,144:3,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,94,144:2,-" +
    "1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:" +
    "3,106,144:3,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:3,-" +
    "1:3,144:4,-1:4,78,144:5,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,102,14" +
    "4:2,-1:3,144:4,-1:4,144:6,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2,-1:4,144:" +
    "3,-1:3,144:4,-1:4,144:5,130,-1,144:2,-1,144:2,79,-1:8,144:2,-1:9,144:2,-1:4" +
    ",144:3,-1:3,144:4,-1:4,144,80,144:4,-1,144:2,-1,144:3,-1:8,144:2,-1:9,144:2" +
    ",-1:4,144:3,-1:3,144:4,-1:4,144:4,140,144,-1,144:2,-1,144:3,-1:8,144:2,-1:9" +
    ",144:2,-1:4,144:3,-1:3,144:4,-1:4,144,81,144:2,134,133,-1,144:2,-1,144:2,82" +
    ",-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144,83,144:2,-1:4,144:6,-1,144:2,-1," +
    "144:2,84,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144,86,144:2,-1:4,144:6,-1,1" +
    "44:2,-1,144,87,144,-1:8,144:2,-1:9,144:2,-1:4,144:3,-1:3,144:4,-1:4,144:6,-" +
    "1,144:2,-1,144:2,143,-1:8,144:2,-1:9,144:2,-1:3");

        public TUVienna.CS_CUP.Runtime.Symbol next_token()
        {
            int yy_lookahead;
            int yy_anchor = YY_NO_ANCHOR;
            int yy_state = yy_state_dtrans[yy_lexical_state];
            int yy_next_state = YY_NO_STATE;
            int yy_last_accept_state = YY_NO_STATE;
            bool yy_initial = true;
            int yy_this_accept;

            yy_mark_start();
            yy_this_accept = yy_acpt[yy_state];
            if (YY_NOT_ACCEPT != yy_this_accept)
            {
                yy_last_accept_state = yy_state;
                yy_mark_end();
            }
            while (true)
            {
                if (yy_initial && yy_at_bol) yy_lookahead = YY_BOL;
                else yy_lookahead = yy_advance();
                yy_next_state = YY_F;
                yy_next_state = yy_nxt[yy_rmap[yy_state]][yy_cmap[yy_lookahead]];
                if (YY_EOF == yy_lookahead && true == yy_initial)
                {
                    return null;
                }
                if (YY_F != yy_next_state)
                {
                    yy_state = yy_next_state;
                    yy_initial = false;
                    yy_this_accept = yy_acpt[yy_state];
                    if (YY_NOT_ACCEPT != yy_this_accept)
                    {
                        yy_last_accept_state = yy_state;
                        yy_mark_end();
                    }
                }
                else
                {
                    if (YY_NO_STATE == yy_last_accept_state)
                    {
                        throw (new System.Exception("Lexical Error: Unmatched Input."));
                    }
                    else
                    {
                        yy_anchor = yy_acpt[yy_last_accept_state];
                        if (0 != (YY_END & yy_anchor))
                        {
                            yy_move_end();
                        }
                        yy_to_mark();
                        switch (yy_last_accept_state)
                        {
                            case 1:
                                break;
                            case -2:
                                break;
                            case 2:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -3:
                                break;
                            case 3:
                                { return new Symbol(sym.abrecorchete); }
                            case -4:
                                break;
                            case 4:
                                { return new Symbol(sym.cierracorchete); }
                            case -5:
                                break;
                            case 5:
                                { return new Symbol(sym.igual); }
                            case -6:
                                break;
                            case 6:
                                { return new Symbol(sym.abreparentesis); }
                            case -7:
                                break;
                            case 7:
                                { return new Symbol(sym.cierraparentesis); }
                            case -8:
                                break;
                            case 8:
                                { return new Symbol(sym.abrellave); }
                            case -9:
                                break;
                            case 9:
                                { return new Symbol(sym.cierrallave); }
                            case -10:
                                break;
                            case 10:
                                { return new Symbol(sym.dospuntos); }
                            case -11:
                                break;
                            case 11:
                                { return new Symbol(sym.puntocoma); }
                            case -12:
                                break;
                            case 12:
                                { return new Symbol(sym.menorque); }
                            case -13:
                                break;
                            case 13:
                                { return new Symbol(sym.mas); }
                            case -14:
                                break;
                            case 14:
                                { return new Symbol(sym.mayorque); }
                            case -15:
                                break;
                            case 15:
                                { return new Symbol(sym.coma); }
                            case -16:
                                break;
                            case 16:
                                { return new Symbol(sym.menos); }
                            case -17:
                                break;
                            case 17:
                                { return new Symbol(sym.por); }
                            case -18:
                                break;
                            case 18:
                                { return new Symbol(sym.diagonal); }
                            case -19:
                                break;
                            case 19:
                                { return new Symbol(sym.punto); }
                            case -20:
                                break;
                            case 20:
                                { System.Console.Error.WriteLine("Illegal character: " + yytext()); break; }
                            case -21:
                                break;
                            case 21:
                                { return new Symbol(sym.diferente); }
                            case -22:
                                break;
                            case 22:
                                { return new Symbol(sym.mod); }
                            case -23:
                                break;
                            case 23:
                                { /* ignore white space. */break; }
                            case -24:
                                break;
                            case 24:
                                {
                                    return (new Symbol(sym.tk_numero, yytext()));
                                }
                            case -25:
                                break;
                            case 25:
                                { return new Symbol(sym.tk_if); }
                            case -26:
                                break;
                            case 26:
                                { return new Symbol(sym.igualigual); }
                            case -27:
                                break;
                            case 27:
                                { return new Symbol(sym.tk_do); }
                            case -28:
                                break;
                            case 28:
                                { return new Symbol(sym.menorigual); }
                            case -29:
                                break;
                            case 29:
                                { return new Symbol(sym.masmas); }
                            case -30:
                                break;
                            case 30:
                                { return new Symbol(sym.mayorigual); }
                            case -31:
                                break;
                            case 31:
                                { return new Symbol(sym.menosmenos); }
                            case -32:
                                break;
                            case 32:
                                { return new Symbol(sym.tk_or); }
                            case -33:
                                break;
                            case 33:
                                { return new Symbol(sym.tk_and); }
                            case -34:
                                break;
                            case 34:
                                { return new Symbol(sym.esdistinto); }
                            case -35:
                                break;
                            case 35:
                                {
                                    return new Symbol(sym.tk_cadena, yytext().Substring(1, yytext().Length - 2));
                                }
                            case -36:
                                break;
                            case 36:
                                { return new Symbol(sym.tk_int); }
                            case -37:
                                break;
                            case 37:
                                { return new Symbol(sym.tk_new); }
                            case -38:
                                break;
                            case 38:
                                { return new Symbol(sym.tk_for); }
                            case -39:
                                break;
                            case 39:
                                {
                                    return new Symbol(sym.tk_vchar, yytext().Substring(1, yytext().Length - 2));
                                }
                            case -40:
                                break;
                            case 40:
                                { return new Symbol(sym.tk_null); }
                            case -41:
                                break;
                            case 41:
                                { return new Symbol(sym.tk_true); }
                            case -42:
                                break;
                            case 42:
                                { return new Symbol(sym.tk_this); }
                            case -43:
                                break;
                            case 43:
                                { return new Symbol(sym.tk_else); }
                            case -44:
                                break;
                            case 44:
                                { return new Symbol(sym.tk_char); }
                            case -45:
                                break;
                            case 45:
                                { return new Symbol(sym.tk_case); }
                            case -46:
                                break;
                            case 46:
                                { return new Symbol(sym.tk_bool); }
                            case -47:
                                break;
                            case 47:
                                { return new Symbol(sym.tk_void); }
                            case -48:
                                break;
                            case 48:
                                { return new Symbol(sym.tk_false); }
                            case -49:
                                break;
                            case 49:
                                { return new Symbol(sym.tk_while); }
                            case -50:
                                break;
                            case 50:
                                { return new Symbol(sym.tk_class); }
                            case -51:
                                break;
                            case 51:
                                { return new Symbol(sym.tk_break); }
                            case -52:
                                break;
                            case 52:
                                { return new Symbol(sym.tk_string); }
                            case -53:
                                break;
                            case 53:
                                { return new Symbol(sym.tk_switch); }
                            case -54:
                                break;
                            case 54:
                                { return new Symbol(sym.tk_return); }
                            case -55:
                                break;
                            case 55:
                                { return new Symbol(sym.tk_public); }
                            case -56:
                                break;
                            case 56:
                                { return new Symbol(sym.tk_default); }
                            case -57:
                                break;
                            case 57:
                                { return new Symbol(sym.tk_private); }
                            case -58:
                                break;
                            case 58:
                                { return new Symbol(sym.tk_continue); }
                            case -59:
                                break;
                            case 59:
                                { return new Symbol(sym.tk_protected); }
                            case -60:
                                break;
                            case 61:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -61:
                                break;
                            case 62:
                                { System.Console.Error.WriteLine("Illegal character: " + yytext()); break; }
                            case -62:
                                break;
                            case 63:
                                {
                                    return new Symbol(sym.tk_cadena, yytext().Substring(1, yytext().Length - 2));
                                }
                            case -63:
                                break;
                            case 65:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -64:
                                break;
                            case 66:
                                { System.Console.Error.WriteLine("Illegal character: " + yytext()); break; }
                            case -65:
                                break;
                            case 68:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -66:
                                break;
                            case 69:
                                { System.Console.Error.WriteLine("Illegal character: " + yytext()); break; }
                            case -67:
                                break;
                            case 71:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -68:
                                break;
                            case 72:
                                { System.Console.Error.WriteLine("Illegal character: " + yytext()); break; }
                            case -69:
                                break;
                            case 74:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -70:
                                break;
                            case 75:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -71:
                                break;
                            case 76:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -72:
                                break;
                            case 77:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -73:
                                break;
                            case 78:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -74:
                                break;
                            case 79:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -75:
                                break;
                            case 80:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -76:
                                break;
                            case 81:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -77:
                                break;
                            case 82:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -78:
                                break;
                            case 83:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -79:
                                break;
                            case 84:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -80:
                                break;
                            case 85:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -81:
                                break;
                            case 86:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -82:
                                break;
                            case 87:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -83:
                                break;
                            case 88:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -84:
                                break;
                            case 89:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -85:
                                break;
                            case 90:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -86:
                                break;
                            case 91:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -87:
                                break;
                            case 92:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -88:
                                break;
                            case 93:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -89:
                                break;
                            case 94:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -90:
                                break;
                            case 95:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -91:
                                break;
                            case 96:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -92:
                                break;
                            case 97:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -93:
                                break;
                            case 98:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -94:
                                break;
                            case 99:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -95:
                                break;
                            case 100:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -96:
                                break;
                            case 101:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -97:
                                break;
                            case 102:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -98:
                                break;
                            case 103:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -99:
                                break;
                            case 104:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -100:
                                break;
                            case 105:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -101:
                                break;
                            case 106:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -102:
                                break;
                            case 107:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -103:
                                break;
                            case 108:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -104:
                                break;
                            case 109:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -105:
                                break;
                            case 110:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -106:
                                break;
                            case 111:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -107:
                                break;
                            case 112:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -108:
                                break;
                            case 113:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -109:
                                break;
                            case 114:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -110:
                                break;
                            case 115:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -111:
                                break;
                            case 116:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -112:
                                break;
                            case 117:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -113:
                                break;
                            case 118:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -114:
                                break;
                            case 119:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -115:
                                break;
                            case 120:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -116:
                                break;
                            case 121:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -117:
                                break;
                            case 122:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -118:
                                break;
                            case 123:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -119:
                                break;
                            case 124:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -120:
                                break;
                            case 125:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -121:
                                break;
                            case 126:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -122:
                                break;
                            case 127:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -123:
                                break;
                            case 128:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -124:
                                break;
                            case 129:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -125:
                                break;
                            case 130:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -126:
                                break;
                            case 131:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -127:
                                break;
                            case 132:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -128:
                                break;
                            case 133:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -129:
                                break;
                            case 134:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -130:
                                break;
                            case 135:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -131:
                                break;
                            case 136:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -132:
                                break;
                            case 137:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -133:
                                break;
                            case 138:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -134:
                                break;
                            case 139:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -135:
                                break;
                            case 140:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -136:
                                break;
                            case 141:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -137:
                                break;
                            case 142:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -138:
                                break;
                            case 143:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -139:
                                break;
                            case 144:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -140:
                                break;
                            case 145:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -141:
                                break;
                            case 146:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -142:
                                break;
                            case 147:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -143:
                                break;
                            case 148:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -144:
                                break;
                            case 149:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -145:
                                break;
                            case 150:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -146:
                                break;
                            case 151:
                                {
                                    return (new Symbol(sym.tk_identificador, yytext()));
                                }
                            case -147:
                                break;
                            default:
                                yy_error(YY_E_INTERNAL, false); break;
                        }
                        yy_initial = true;
                        yy_state = yy_state_dtrans[yy_lexical_state];
                        yy_next_state = YY_NO_STATE;
                        yy_last_accept_state = YY_NO_STATE;
                        yy_mark_start();
                        yy_this_accept = yy_acpt[yy_state];
                        if (YY_NOT_ACCEPT != yy_this_accept)
                        {
                            yy_last_accept_state = yy_state;
                            yy_mark_end();
                        }
                    }
                }
            }
        }
    }
}